草庐IT

c - x86-64下的快速堆栈切换

全部标签

ruby - 如何打印 Ruby 1.9 进程的运行时堆栈跟踪?

有什么方法可以打印Ruby1.9.x进程的运行时堆栈跟踪吗?我知道Ruby1.8有一个名为pstack的实用程序,但该项目似乎在几年前就被放弃了:https://github.com/ice799/pstack.Ruby1.9是否存在类似的东西?非常感谢!编辑:我有兴趣使用外部工具生成堆栈跟踪(不在与Ruby进程相同的内存空间中运行)。正如@mosch所指出的,Kernal#caller方法在正在运行的Ruby进程中运行。您甚至可以构建对捕获进程信号并打印堆栈跟踪的Ruby代码的支持:Signal.trap("SIGTERM"){pcaller}引用:http://www.ruby-d

ruby-on-rails - 如何在 Controller Action 中切换 bool 属性

我有一个操作可以简单地将#active属性切换到相反的bool状态:如果@blog.active==true然后更新它到非事件如果@blog.active==false然后更新它到事件我在Controller中获得了以下自定义操作,但必须有一些Rails方法才能更优雅地执行此操作:classBlogsController是否有一种Rails方法可以将bool属性更新为相反的bool状态? 最佳答案 ActiveRecord具有执行此操作的toggle和toggle!方法。请记住,toggle!方法会跳过验证检查。classBlogs

ruby - 切换到 cucumber , capybara 中的弹出窗口

在RSpec中我可以使用这样的代码切换到弹出窗口,link,我怎么能在cucumber步骤中做这样的事情?login_window=page.driver.find_window('PPA_identity_window')main_window=page.driver.find_window('')#Weusethistoexecutethenextinstructionsinthepopupwindowpage.within_window(login_window)do#Normallyfillintheformandloginfill_in'email',:with=>""fil

jquery - 根据按下的链接显示特定类别 | Rails 上的 Ruby

我有一个博客,它在同一页面上呈现每个类别及其各自的子类别。(索引View)我有一个导航部分,我想利用它根据按下的链接仅呈现特定子类别的帖子。我不知道单独使用ruby​​是否可行,所以我认为JQuery可能是这种方式。blog_categoriesindex.html.erb:NEWSAllNewsGoodNewsBadNewsREVIEWSAllReviewsSoftwareHardware...blog_categories_controller:defindex@category=BlogCategory.find_by_id(params[:id])unless@category

ruby - 如何在 rake TestTask 失败后抑制巨大的堆栈跟踪?

我正在为一个项目设置一个rakefile,并且我已经定义了一些rakeTestTasks。我运行了一个简单的健全性测试,该测试执行assert_equal(1,2)只是为了检查输出,除了通常的失败输出之外,我还遇到了这样一团糟:rakeaborted!Commandfailedwithstatus(1):[/usr/bin/ruby-w-I"lib:.""/usr/lib/ruby/...]/usr/lib/ruby/1.9.1/rake.rb:993:in`blockinsh'/usr/lib/ruby/1.9.1/rake.rb:1008:in`call'/usr/lib/ruby

ruby - 在 Capistrano 3 中永久切换用户(单独授权和部署)

我们在服务器管理中有以下模式-所有用户都有自己的用户,但部署完全由特殊部署用户执行,没有直接登录的可能性。我们在Capistrano2.x中使用了这个方法:default_run_options[:shell]="sudo-udeploybash"$capstagedeploy-suser=thisisme我知道Capistrano3.x有直接切换用户的方法:task:installdoonroles(:all)doas:deploydoexecute:whoamiendendend但是这段代码会填充所有任务,默认任务不会继承deploy用户。是否可以直接设置登录用户而无需将此代码拖到

ruby - 缓慢的 Ruby 正则表达式通过奇怪的变化变得快速

我一直在调试网站以查找页面加载时间过长的根源,并将其缩小为用于从文本中提取URL的正则表达式:/(?:([\w+.-]+):\/\/|(?:www\.))[^\s在一大块文本上运行大约需要3秒。我发现如果我将第一个子句的逆语句添加到正则表达式((?:[^\w+.-]|^))的开头,它几乎会立即运行:/(?:[^\w+.-]|^)(?:([\w+.-]++):\/\/|(?:www\.))[^\s在我看来,添加的子句根本不应该影响正则表达式,因为没有什么可以导致该子句失败(因为这些字符将与“[\w+.-]++”子句匹配)。为什么这会使正则表达式运行得更快?编辑有些人要求提供我正在尝试做的

ruby - 在 heroku cedar 堆栈上部署 sinatra 应用程序(使用 config.ru)

我正在尝试重构我的sinatra代码以将我的主文件分成单独的文件,使用来自thisresponse的一些技巧,我在部署到heroku时遇到了麻烦。以前我没有config.ru文件,只是使用了我的Procfile,它是:web:bundleexecrubyweb.rb-p$PORT根据thisarticle.从重构开始,我现在将Procfile更改为web:bundleexecthin-Rconfig.rustart-p$PORT我的config.ru文件是root=::File.dirname(__FILE__)require::File.join(root,'web')runMyAp

ruby-on-rails - activesupport 回调中的堆栈级别太深

我在Rails3应用程序中收到SystemStackError。我拥有的所有信息都是无用的一行堆栈跟踪(从日志中获取):SystemStackError(stackleveltoodeep):activesupport(3.2.3)lib/active_support/callbacks.rb:409所以问题是我如何查看完整的堆栈跟踪?注意:我不关心为什么会发生这种情况,我只想知道它发生在何处。使用:Rails3.2.3,Unicorn。谢谢。 最佳答案 如果您在before_save或after_save中更新事件记录,它将继续循

ruby-on-rails - Rails 开发模式下的日志轮换?

对于Rails3.1(很快将是3.2),我有非常详细的日志,其中包含大量额外的工作人员信息。我通常会得到数GB的development.log文件。我看到过一些关于轮换生产日志的讨论,但是我没有发现任何似乎适用于development.log轮换的内容。您如何在每100.megabytes左右轮换您的development.log?或者我更喜欢实际截断文件头,以便只有最近的项目保留在日志中,最近的条目最多100MB。我已经玩了一点,并且越来越多地认为目前不存在这样的东西,也许我应该实现一些将以某种方式使用ruby​​File.truncate的东西,但是我到目前为止,我还不确定它在文件